## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-

def build(bld):
    pacer = bld.create_ns3_module('razor-ns3', ['core','network'])
    pacer.source = [
        'model/gcc_sender.cc',
        'model/razor_header.cc',
        'model/sim_endpoint.cc',
        'model/sim_sender.cc',
        'model/sim_receiver.cc',
        'model/razortrace.cc',
        'model/c_call_cplus.cc',
        'model/razor/pacing/alr_detector.c',
        'model/razor/pacing/interval_budget.c',
        'model/razor/pacing/pacer_queue.c',
        'model/razor/pacing/pace_sender.c',
        'model/razor/common/cf_crc32.c',
        'model/razor/common/cf_hex.c',
        'model/razor/common/cf_list.c',
        'model/razor/common/cf_skiplist.c',
        'model/razor/common/cf_stream.c',
        'model/razor/common/cf_unwrapper.c',
        'model/razor/common/platform/posix/posix.c',
        'model/razor/cc/razor_api.c',
        'model/razor/cc/razor_log.c',
        'model/razor/cc/receiver_congestion_controller.c',
        'model/razor/cc/sender_congestion_controller.c',
        'model/razor/estimator/ack_bitrate_estimator.c',
        'model/razor/estimator/aimd_rate_control.c',
        'model/razor/estimator/bitrate_controller.c',
        'model/razor/estimator/cc_loss_stat.c',
        'model/razor/estimator/delay_base_bwe.c',
        'model/razor/estimator/estimator_common.c',
        'model/razor/estimator/feedback_adapter.c',
        'model/razor/estimator/inter_arrival.c',
        'model/razor/estimator/kalman_filter.c',
        'model/razor/estimator/overuse_detector.c',
        'model/razor/estimator/rate_stat.c',
        'model/razor/estimator/remote_bitrate_estimator.c',
        'model/razor/estimator/remote_estimator_proxy.c',
        'model/razor/estimator/sender_bandwidth_estimator.c',
        'model/razor/estimator/sender_history.c',
        'model/razor/estimator/trendline.c',
        ]
    headers = bld(features='ns3header')
    headers.module = 'razor-ns3'
    headers.source = [
        'model/gcc_sender.h',
        'model/razor_header.h',
        'model/sim_endpoint.h',
        'model/sim_sender.h',
        'model/sim_receiver.h',
        'model/razortrace.h',
        'model/sim_constants.h',
        'model/c_call_cplus.h',
        'model/razor/pacing/pace_sender.h',
        'model/razor/pacing/alr_detector.h',
        'model/razor/pacing/interval_budget.h',
        'model/razor/pacing/pacer_queue.h',
        'model/razor/pacing/pace_sender.h',
        'model/razor/common/cf_platform.h',
        'model/razor/common/cf_crc32.h',
        'model/razor/common/cf_hex.h',
        'model/razor/common/cf_list.h',
        'model/razor/common/cf_platform.h',
        'model/razor/common/cf_skiplist.h',
        'model/razor/common/cf_stream.h',
        'model/razor/common/cf_unwrapper.h',
        'model/razor/cc/razor_api.h',
        'model/razor/cc/razor_callback.h',
        'model/razor/cc/razor_log.h',
        'model/razor/cc/receiver_congestion_controller.h',
        'model/razor/cc/sender_congestion_controller.h',
	'model/razor/estimator/ack_bitrate_estimator.h',
	'model/razor/estimator/aimd_rate_control.h',
	'model/razor/estimator/bitrate_controller.h',
	'model/razor/estimator/cc_loss_stat.h',
	'model/razor/estimator/delay_base_bwe.h',
	'model/razor/estimator/estimator_common.h',
	'model/razor/estimator/feedback_adapter.h',
	'model/razor/estimator/inter_arrival.h',
	'model/razor/estimator/kalman_filter.h',
	'model/razor/estimator/overuse_detector.h',
	'model/razor/estimator/rate_stat.h',
	'model/razor/estimator/remote_bitrate_estimator.h',
	'model/razor/estimator/remote_estimator_proxy.h',
	'model/razor/estimator/sender_bandwidth_estimator.h',
	'model/razor/estimator/sender_history.h',
	'model/razor/estimator/trendline.h',
        ]
    pacer.env.append_value("CFLAGS","-fPIC")
    pacer.env['INCLUDES'] += [
        'model',
        'model/razor/cc',
        'model/razor/common',
        'model/razor/pacing',
        'model/razor/estimator'
		           ]
